CMAKE_MINIMUM_REQUIRED(VERSION 3.18)
PROJECT(UT2004)

include("../configure.cmake")

SET(ENGINE_SRC
    Inc/AActor.h
    Inc/AAIController.h
    Inc/ABrush.h
    Inc/ACamera.h
    Inc/AController.h
    Inc/ADecoration.h
    Inc/ADoor.h
    Inc/AEmitter.h
    Inc/AGameReplicationInfo.h
    Inc/AInterpolationPoint.h
    Inc/AInventory.h
    Inc/ALadder.h
    Inc/ALadderVolume.h
    Inc/ALevelInfo.h
    Inc/ALiftCenter.h
    Inc/ALight.h
    Inc/ALineOfSightTrigger.h
    Inc/AMatSubAction.h
    Inc/AMover.h
    Inc/ANavigationPoint.h
    Inc/ANote.h
    Inc/APawn.h
    Inc/APhysicsVolume.h
    Inc/APickup.h
    Inc/APlayerController.h
    Inc/APlayerReplicationInfo.h
    Inc/APlayerStart.h
    Inc/APowerups.h
    Inc/AProjectile.h
    Inc/AProjector.h
    Inc/ASceneManager.h
    Inc/AScout.h
    Inc/ASecurity.h
    Inc/AStationaryWeapons.h
    Inc/ATeamInfo.h
    Inc/ATeleporter.h
    Inc/AVolume.h
    Inc/AWarpZoneInfo.h
    Inc/AWarpZoneMarker.h
    Inc/AWeapon.h
    Inc/AWeaponAttachment.h
    Inc/AxEmitter.h
    Inc/AxPickupBase.h
    Inc/AxProcMesh.h
    Inc/AxWeatherEffect.h
    Inc/AZoneInfo.h
    Inc/Bezier.h
    Inc/Engine.h
    Inc/ID3Tag.h
    Inc/ID3TagGlobals.h
    Inc/KTypes.h
    Inc/LIPSincSupport.h
    Inc/UBeamEmitter.h
    Inc/UCombiner.h
    Inc/UFinalBlend.h
    Inc/UI3DL2Listener.h
    Inc/UInteraction.h
    Inc/UInteractionMaster.h
    Inc/ULevelSummary.h
    Inc/UManifest.h
    Inc/UMatAction.h
    Inc/UMatSubAction.h
    Inc/UMeshEmitter.h
    Inc/UModifier.h
    Inc/UnActor.h
    Inc/UnAnim.h
    Inc/UnAudio.h
    Inc/UnBunch.h
    Inc/UnCacheManager.h
    Inc/UnCamera.h
    Inc/UnCameraEffects.h
    Inc/UnCanvas.h
    Inc/UnCDKey.h
    Inc/UnChan.h
    Inc/UnComponents.h
    Inc/UnConn.h
    Inc/UnConvexVolume.h
    Inc/UnDDraw.h
    Inc/UnDemoPenLev.h
    Inc/UnDemoRec.h
    Inc/UnDownload.h
    Inc/UnEngine.h
    Inc/UnEngineGnuG.h
    Inc/UnEngineWin.h
    Inc/UnFluidSurface.h
    Inc/UnGame.h
    Inc/UnIn.h
    Inc/UnkDOP.h
    Inc/UnLevel.h
    Inc/UnLodMesh.h
    Inc/UnMaterial.h
    Inc/UnMatineeTools.h
    Inc/UnMesh.h
    Inc/UnModel.h
    Inc/UnNet.h
    Inc/UnNetDrv.h
    Inc/UnNullRenderDevice.h
    Inc/UnObj.h
    Inc/UnPackageCheckInfo.h
    Inc/UnParticleSystem.h
    Inc/UnPath.h
    Inc/UnPenLev.h
    Inc/UnPhysic.h
    Inc/UnPlayer.h
    Inc/UnPrim.h
    Inc/UnProjector.h
    Inc/UnReach.h
    Inc/UnRebuildTools.h
    Inc/UnRender.h
    Inc/UnRenderResource.h
    Inc/UnRenderUtil.h
    Inc/UnRenDev.h
    Inc/UnSkeletalMesh.h
    Inc/UnStatGraph.h
    Inc/UnStaticMesh.h
    Inc/UnStats.h
    Inc/UnTerrain.h
    Inc/UnTerrainTools.h
    Inc/UnTex.h
    Inc/UnURL.h
    Inc/UnVertMesh.h
    Inc/UnVoiceChat.h
    Inc/UnVolume.h
    Inc/UParticleEmitter.h
    Inc/UPausedCameraControl.h
    Inc/UReachSpec.h
    Inc/UShader.h
    Inc/USparkEmitter.h
    Inc/USpline.h
    Inc/USpriteEmitter.h
    Inc/UStream.h
    Inc/UStreamPrivate.h
    Inc/USubActionCameraShake.h
    Inc/USubActionFade.h
    Inc/USubActionFOV.h
    Inc/USubActionGameSpeed.h
    Inc/USubActionOrientation.h
    Inc/USubActionSceneSpeed.h
    Inc/USubActionSubTitle.h
    Inc/USubActionTrigger.h
    Inc/UTrailEmitter.h
    Inc/xForceFeedback.h
    Inc/xOctTree.h
    Inc/xParticleMgr.h
    Inc/xTexShader.h

    Src/AFileLog.cpp
    Src/AGameStats.cpp
    Src/Amd3d.h
    Src/ASceneSubtitles.cpp
    Src/AxEmitter.cpp
    Src/AxPickupBase.cpp
    Src/AxProcMesh.cpp
    Src/AxWeatherEffect.cpp
    Src/Engine.cpp
    Src/EnginePrivate.h
    Src/KarmaSupport.cpp
    Src/KarmaSupport.h
    Src/KConstraint.cpp
    Src/KDebugDraw.cpp
    Src/KDebugDraw.h
    Src/KDynStep.cpp
    Src/KFarfield.cpp
    Src/KIntersectFunctions.cpp
    Src/KPhysic.cpp
    Src/KScript.cpp
    Src/KSkeletal.cpp
    Src/KTriListGen.cpp
    Src/KUtils.cpp
    Src/LIPSincSupport.cpp
    Src/NullDrv.cpp
    Src/UExportCacheCommandlet.cpp
    Src/ULodMesh.cpp
    Src/UnActCol.cpp
    Src/UnActor.cpp
    Src/UnAudio.cpp
    Src/UnBeamEmitter.cpp
    Src/UnBunch.cpp
    Src/UnCacheManager.cpp
    Src/UnCamera.cpp
    Src/UnCameraEffects.cpp
    Src/UnCamMgr.cpp
    Src/UnCanvas.cpp
    Src/UnCDKey.cpp
    Src/UnChan.cpp
    Src/UnConn.cpp
    Src/UnController.cpp
    Src/UnConvexVolume.cpp
    Src/UnDemoPenLev.cpp
    Src/UnDemoRec.cpp
    Src/UnDownload.cpp
    Src/UnEngine.cpp
    Src/UnErrorChecking.cpp
    Src/UnFluidSurface.cpp
    Src/UnFont.cpp
    Src/UnFPoly.cpp
    Src/UnGame.cpp
    Src/UnGameUtilities.cpp
    Src/UnIn.cpp
    Src/UnInteraction.cpp
    Src/UnInteractionMaster.cpp
    Src/UnkDOP.cpp
    Src/UnLevAct.cpp
    Src/UnLevel.cpp
    Src/UnLevTic.cpp
    Src/UnLodMesh.cpp
    Src/UnManifest.cpp
    Src/UnMaterial.cpp
    Src/UnMatineeTools.cpp
    Src/UnMesh.cpp
    Src/UnMeshEmitter.cpp
    Src/UnModel.cpp
    Src/UnModelLight.cpp
    Src/UnMover.cpp
    Src/UnNavigationPoint.cpp
    Src/UnNetDrv.cpp
    Src/UnOctree.cpp
    Src/UnOctreePrivate.h
    Src/UnPackageCheckInfo.cpp
    Src/UnParams.cpp
    Src/UnParticleEmitter.cpp
    Src/UnParticleSystem.cpp
    Src/UnPath.cpp
    Src/UnPawn.cpp
    Src/UnPenLev.cpp
    Src/UnPhysic.cpp
    Src/UnPlayer.cpp
    Src/UnPlayInfo.cpp
    Src/UnPrim.cpp
    Src/UnProjector.cpp
    Src/UnReach.cpp
    Src/UnRebuildTools.cpp
    Src/UnRender.cpp
    Src/UnRenderBatch.cpp
    Src/UnRenderBSP.cpp
    Src/UnRenderEditorActor.cpp
    Src/UnRenderLight.cpp
    Src/UnRenderPool.cpp
    Src/UnRenderPrivate.h
    Src/UnRenderResource.cpp
    Src/UnRenderStaticMesh.cpp
    Src/UnRenderUtil.cpp
    Src/UnRenderVisibility.cpp
    Src/UnRoute.cpp
    Src/UnSceneManager.cpp
    Src/UnScript.cpp
    Src/UnScriptedTexture.cpp
    Src/UnSecurity.cpp
    Src/UnShadowProjector.cpp
    Src/UnSkeletalMesh.cpp
    Src/UnSkeletalMeshCollision.cpp
    Src/UnSkeletalTools.cpp
    Src/UnSparkEmitter.cpp
    Src/UnSpriteEmitter.cpp
    Src/UnStatGraph.cpp
    Src/UnStaticMesh.cpp
    Src/UnStaticMeshBuild.cpp
    Src/UnStaticMeshCollision.cpp
    Src/UnStats.cpp
    Src/UnSVehicle.cpp
    Src/UnTerrain.cpp
    Src/UnTerrainTools.cpp
    Src/UnTex.cpp
    Src/UnTrace.cpp
    Src/UnTrailEmitter.cpp
    Src/UnURL.cpp
    Src/UnVehicle.cpp
    Src/UnVertMesh.cpp
    Src/UnVoiceChat.cpp
    Src/UnVolume.cpp
    Src/USpline.cpp
    Src/UStreamInterface.cpp
    Src/xDataObject.cpp
    Src/xForceFeedback.cpp
    Src/xParticleMgr.cpp
    #Src/xTexShader.cpp
)

file(GLOB ENGINE_CLASSES CONFIGURE_DEPENDS "Classes/*.uc")

set(ENGINE_DEPS
    Core
    McdCommon
    McdConvex
    McdConvexCreateHull
    Mdt
    MdtBcl
    MdtKea
    MeAssetDB
    MeAssetDBXMLIO
    MeAssetFactory
    MeGlobals
    Mst
    NvTriStrip
    zlib
)

add_unreal_native_package(Engine
    CLASSES ${ENGINE_CLASSES}
    SOURCES ${ENGINE_SRC}
    DEPENDS_ON ${ENGINE_DEPS}
)

